package com.qjc.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;
import java.util.Optional;

/**
 * @author cxw
 * @description 响应状态码枚举
 * @date 2022/2/23 11:26
 */
@Getter
@AllArgsConstructor
public enum ResultModelEnum {

    SUCCESS( "200" , "成功" ),

    OK( "ok" , "成功" ),

    FAILED( "500" , "失败" ),

    FAIL( "fail" , "失败" ),

    WARNING( "warning" , "警告" ),

    NO_PERMISSION("403","没有数据权限"),

    /**
     * SQL类异常信息
     */
    SQL_EXCEPTION("10001" , "SQL语句非法，请检测字段列" ),

    /**
     * 全局异常，当匹配不到合适的异常信息时执行该异常提醒
     */
    GLOBAL_EXCEPTION( "9999" , "发生异常,请联系管理员" ),
    /**
     * 用户未登录
     */
    LOGIN_EXCEPTION( "10002" , "用户未登录" );

    private String code;

    private String message;

    public static Optional<ResultModelEnum> getByCode(String code){
        return Arrays.stream(ResultModelEnum.values()).parallel()
                .filter(value -> value.getCode().equals(code))
                .findFirst();
    }

}
